All Data clusters (Deep learning, DEL (Deep Embedding Clustering layer))

resultft_DEL_all_5 <- read.csv('/Users/xbasra/Documents/Data/Clustering_Food_Alergies/Intermediate/CsvData_Output/resultft_DEL_all_5_cluster.csv')
# replacing the empty space "" values with no as done in the main analysis file
resultft_DEL_all_5$farmlive[resultft_DEL_all_5$farmlive == ""] <- NA
resultft_DEL_all_5 <-  resultft_DEL_all_5 %>% replace_na (list(farmlive = 'no'))
#tsne_converted_food$cl_DEL <- factor(resultft_DEL_all$cluster)
#ggplot(tsne_converted_food, aes(x=X, y=Y, color=cl_DEL)) + geom_point()
resultft_DEL_all_5$cluster <- as.factor(resultft_DEL_all_5$cluster)
DEC_Embedding_5 = read.csv('/Users/xbasra/Documents/Data/Clustering_Food_Alergies/Intermediate/CsvData_Output/DEC_Embedding_5.csv')
set.seed(10)
#tsne_converted_food_DEL <- Rtsne(X = EDL_Embedding ,perplexity= 200, is_distance = FALSE, check_duplicates = FALSE)
tsne_converted_food_DEC_5 <- Rtsne(X = DEC_Embedding_5 ,perplexity= 150, is_distance = FALSE, check_duplicates = FALSE)
tsne_converted_food_DEC_5 <- tsne_converted_food_DEC_5$Y %>%
  data.frame() %>%
  setNames(c("X", "Y"))
tsne_converted_food_DEC_5$cl <- factor(resultft_DEL_all_5$cluster)
ggplot(tsne_converted_food_DEC_5, aes(x=X, y=Y, color=cl)) + geom_point()

tsne_converted_food_DEC_3d_5 <- Rtsne(X = DEC_Embedding_5 ,perplexity= 150, dims = 3, is_distance = FALSE, check_duplicates = FALSE)
tsne_converted_food_DEC_3d_5 <- tsne_converted_food_DEC_3d_5$Y %>%
  data.frame() %>%
  setNames(c("X", "Y", "Z"))
tsne_converted_food_DEC_3d_5$cl <- factor(resultft_DEL_all_5$cluster)
p <- plot_ly(tsne_converted_food_DEC_3d_5, x = ~X, y = ~Y, z = ~Z, color = ~cl, colors = c('#BF382A', '#0C4B8E')) %>%
  add_markers() %>%
  layout(scene = list(xaxis = list(title = 'Dim1'),
                     yaxis = list(title = 'Dim2'),
                     zaxis = list(title = 'Dim3')))
p

Density plot shoiwing the age distribution for each cluster

resultft_DEL_all$cluster <- as.factor(resultft_DEL_all_5$cluster)
age_g <- ggplot(resultft_DEL_all_5, aes(sIgE_f3))
age_p <- age_g + geom_density(aes(fill=factor(cluster)), alpha=0.8) +
    labs(title="Density plot",
         subtitle="sIgE_f1 of persons Grouped by Clusters",
         caption="Source: Source: results of Hierarchical clustering with tree-based distance and distance d1",
         x="sIgE_f1",
         fill="# Clusters")
ggplotly(age_p)
g <- ggplot(resultft_DEL_all_5, aes(bmi2)) + scale_fill_brewer(palette = "Spectral")
s <- g + geom_histogram(aes(fill=factor(cluster)), 
                   bins=5, 
                   col="black", 
                   size=.1) +   # change number of bins
  labs(title="Histogram with Fixed Bins", 
       subtitle="Age across different clusters",
       x="Age",
         fill="# Clusters") 
ggplotly(s)
table_uft_DEL_all <- tableby(cluster ~ ., data = as.list(resultft_DEL_all_5))
summary(table_uft_DEL_all, title = "Charachtaristcs of Clusters")

Table: Charachtaristcs of Clusters
0 (N=773) 1 (N=711) 2 (N=216) 3 (N=53) 4 (N=119) Total (N=1872) p value
sIgE_f1 < 0.001
   Mean (SD) 0.004 (0.043) 0.000 (0.000) 0.084 (0.257) 0.099 (0.227) 1.074 (6.866) 0.082 (1.747)
   Range 0.000 - 0.626 0.000 - 0.000 0.000 - 2.857 0.000 - 1.032 0.000 - 73.692 0.000 - 73.692
sIgE_f2 < 0.001
   Mean (SD) 0.001 (0.009) 0.000 (0.000) 0.112 (0.228) 0.089 (0.223) 0.699 (2.089) 0.060 (0.558)
   Range 0.000 - 0.160 0.000 - 0.000 0.000 - 1.091 0.000 - 1.280 0.000 - 13.623 0.000 - 13.623
sIgE_f3 < 0.001
   Mean (SD) 0.000 (0.004) 0.000 (0.000) 0.012 (0.023) 0.104 (0.259) 0.074 (0.186) 0.009 (0.069)
   Range 0.000 - 0.052 0.000 - 0.000 0.000 - 0.137 0.000 - 1.080 0.000 - 1.332 0.000 - 1.332
sIgE_f4 < 0.001
   Mean (SD) 0.001 (0.006) 0.000 (0.000) 0.047 (0.125) 0.193 (0.321) 0.966 (1.890) 0.073 (0.534)
   Range 0.000 - 0.090 0.000 - 0.000 0.000 - 1.129 0.000 - 1.280 0.000 - 12.512 0.000 - 12.512
sIgE_f13 < 0.001
   Mean (SD) 0.003 (0.019) 0.009 (0.056) 0.141 (0.190) 1.104 (2.873) 4.282 (18.801) 0.324 (4.861)
   Range 0.000 - 0.411 0.000 - 0.726 0.000 - 1.017 0.008 - 16.776 0.000 - 149.746 0.000 - 149.746
sIgE_f14 < 0.001
   Mean (SD) 0.000 (0.002) 0.000 (0.000) 0.011 (0.034) 0.080 (0.140) 0.670 (1.761) 0.046 (0.472)
   Range 0.000 - 0.030 0.000 - 0.000 0.000 - 0.310 0.000 - 0.462 0.000 - 12.386 0.000 - 12.386
sIgE_f17 < 0.001
   Mean (SD) 0.026 (0.150) 0.058 (0.215) 2.554 (2.258) 6.440 (4.758) 20.201 (21.721) 1.794 (7.461)
   Range 0.000 - 1.619 0.000 - 1.715 0.000 - 8.681 0.000 - 13.119 0.000 - 111.259 0.000 - 111.259
sIgE_f18 < 0.001
   Mean (SD) 0.001 (0.012) 0.002 (0.026) 0.036 (0.175) 0.094 (0.398) 0.529 (4.297) 0.042 (1.091)
   Range 0.000 - 0.322 0.000 - 0.686 0.000 - 1.744 0.000 - 2.901 0.000 - 46.879 0.000 - 46.879
sIgE_f20 < 0.001
   Mean (SD) 0.002 (0.011) 0.003 (0.014) 0.085 (0.110) 0.214 (0.225) 1.031 (1.638) 0.083 (0.485)
   Range 0.000 - 0.138 0.000 - 0.153 0.000 - 0.945 0.000 - 1.294 0.000 - 9.959 0.000 - 9.959
sIgE_f36 < 0.001
   Mean (SD) 0.002 (0.012) 0.004 (0.014) 0.053 (0.057) 0.152 (0.206) 0.409 (1.041) 0.039 (0.283)
   Range 0.000 - 0.209 0.000 - 0.120 0.000 - 0.321 0.000 - 1.051 0.000 - 7.754 0.000 - 7.754
gender2 0.005
   females 423 (54.7%) 416 (58.5%) 97 (44.9%) 24 (45.3%) 62 (52.1%) 1022 (54.6%)
   males 350 (45.3%) 295 (41.5%) 119 (55.1%) 29 (54.7%) 57 (47.9%) 850 (45.4%)
age < 0.001
   Mean (SD) 62.134 (8.549) 37.242 (9.728) 46.215 (15.539) 40.945 (13.208) 42.437 (14.837) 48.991 (15.551)
   Range 30.006 - 77.746 18.146 - 64.264 19.266 - 76.190 20.420 - 75.003 19.058 - 78.075 18.146 - 78.075
bmi2 < 0.001
   Mean (SD) 28.285 (4.765) 24.891 (3.742) 25.902 (3.947) 25.977 (4.125) 25.954 (4.534) 26.507 (4.540)
   Range 16.975 - 50.058 17.404 - 41.007 18.290 - 41.197 19.493 - 37.950 17.915 - 38.514 16.975 - 50.058
farmlive
    0 (0.0%) 0 (0.0%) 0 (0.0%) 0 (0.0%) 0 (0.0%) 0 (0.0%)
   no 632 (81.8%) 655 (92.1%) 197 (91.2%) 50 (94.3%) 114 (95.8%) 1648 (88.0%)
   yes 141 (18.2%) 56 (7.9%) 19 (8.8%) 3 (5.7%) 5 (4.2%) 224 (12.0%)
family_allergy_hist < 0.001
   no 566 (73.2%) 297 (41.8%) 106 (49.1%) 16 (30.2%) 37 (31.1%) 1022 (54.6%)
   yes 207 (26.8%) 414 (58.2%) 110 (50.9%) 37 (69.8%) 82 (68.9%) 850 (45.4%)
# adding the id variable 
#result_food_uft_DEL_k$ID <- food_data_id$ID 
#write.csv(result_food_uft_DEL_k, "/Users/xbasra/Documents/Data/Clustering_Food_Alergies/CsvData/result_food_uft_DEL_k.csv")

Charachtiristic Analysis

resultft_DEL_all_5$cluster <- as.factor(resultft_DEL_all_5$cluster)
catdes(resultft_DEL_all_5, 16)

Link between the cluster variable and the categorical variables (chi-square test)
=================================================================================
                         p.value df
family_allergy_hist 1.462223e-41  4
farmlive            2.177886e-10  4
gender2             5.296437e-03  4

Description of each cluster by the categories
=============================================
$`0`
                         Cla/Mod  Mod/Cla   Global      p.value     v.test
family_allergy_hist=no  55.38160 73.22122 54.59402 5.241366e-43  13.747922
farmlive=yes            62.94643 18.24062 11.96581 3.836394e-12   6.943081
farmlive=no             38.34951 81.75938 88.03419 3.836394e-12  -6.943081
family_allergy_hist=yes 24.35294 26.77878 45.40598 5.241366e-43 -13.747922

$`1`
                         Cla/Mod   Mod/Cla   Global      p.value    v.test
family_allergy_hist=yes 48.70588 58.227848 45.40598 2.776694e-18  8.720217
farmlive=no             39.74515 92.123769 88.03419 1.296541e-05  4.360688
gender2=females         40.70450 58.509142 54.59402 7.755781e-03  2.662521
gender2=males           34.70588 41.490858 45.40598 7.755781e-03 -2.662521
farmlive=yes            25.00000  7.876231 11.96581 1.296541e-05 -4.360688
family_allergy_hist=no  29.06067 41.772152 54.59402 2.776694e-18 -8.720217

$`2`
                  Cla/Mod  Mod/Cla   Global     p.value    v.test
gender2=males   14.000000 55.09259 45.40598 0.002480136  3.025754
gender2=females  9.491194 44.90741 54.59402 0.002480136 -3.025754

$`3`
                         Cla/Mod  Mod/Cla   Global      p.value    v.test
family_allergy_hist=yes 4.352941 69.81132 45.40598 0.0003159048  3.601896
family_allergy_hist=no  1.565558 30.18868 54.59402 0.0003159048 -3.601896

$`4`
                         Cla/Mod   Mod/Cla   Global      p.value    v.test
family_allergy_hist=yes 9.647059 68.907563 45.40598 1.046986e-07  5.318374
farmlive=no             6.917476 95.798319 88.03419 3.155607e-03  2.952159
farmlive=yes            2.232143  4.201681 11.96581 3.155607e-03 -2.952159
family_allergy_hist=no  3.620352 31.092437 54.59402 1.046986e-07 -5.318374


Link between the cluster variable and the quantitative variables
================================================================
               Eta2       P-value
age      0.53459417 4.168803e-308
sIgE_f17 0.44312635 1.912237e-235
sIgE_f20 0.26721574 2.259101e-124
sIgE_f4  0.19429220  4.761183e-86
sIgE_f36 0.12646074  1.831810e-53
sIgE_f3  0.12461333  1.297269e-52
sIgE_f14 0.11938658  3.221263e-50
bmi2     0.11488752  3.609795e-48
sIgE_f2  0.09332546  1.682564e-38
sIgE_f13 0.04646742  2.274499e-18
sIgE_f1  0.02219638  1.724935e-08
sIgE_f18 0.01388032  3.006808e-05

Description of each cluster by quantitative variables
=====================================================
$`0`
            v.test Mean in category Overall mean sd in category  Overall sd       p.value
age      30.668195     6.213375e+01 48.990817991    8.543407112 15.54647228 1.511905e-206
bmi2     14.206408     2.828456e+01 26.507217851    4.762205738  4.53851342  8.360568e-46
sIgE_f13 -2.400902     2.783943e-03  0.324389665    0.019354127  4.85933840  1.635472e-02
sIgE_f14 -3.537504     1.723239e-04  0.046205234    0.001900249  0.47206221  4.039274e-04
sIgE_f2  -3.857459     8.040704e-04  0.060153551    0.009378138  0.55814025  1.145717e-04
sIgE_f3  -4.688430     3.528329e-04  0.009219938    0.003741759  0.06860917  2.753086e-06
sIgE_f36 -4.715205     1.980466e-03  0.038784940    0.011657685  0.28315734  2.414673e-06
sIgE_f4  -4.889479     5.302067e-04  0.072516311    0.005758889  0.53408927  1.011030e-06
sIgE_f20 -6.109043     1.752470e-03  0.083349557    0.010506697  0.48453963  1.002306e-09
sIgE_f17 -8.598199     2.595266e-02  1.793797158    0.149831424  7.45872089  8.097668e-18

$`1`
             v.test Mean in category Overall mean sd in category  Overall sd       p.value
sIgE_f13  -2.195853      0.009161681  0.324389665     0.05561821  4.85933840  2.810249e-02
sIgE_f14  -3.313199      0.000000000  0.046205234     0.00000000  0.47206221  9.223532e-04
sIgE_f2   -3.648157      0.000000000  0.060153551     0.00000000  0.55814025  2.641283e-04
sIgE_f36  -4.167325      0.003924759  0.038784940     0.01380475  0.28315734  3.081945e-05
sIgE_f3   -4.548848      0.000000000  0.009219938     0.00000000  0.06860917  5.394044e-06
sIgE_f4   -4.595973      0.000000000  0.072516311     0.00000000  0.53408927  4.307352e-06
sIgE_f20  -5.589043      0.003345652  0.083349557     0.01379930  0.48453963  2.283241e-08
sIgE_f17  -7.878923      0.057693637  1.793797158     0.21479644  7.45872089  3.302154e-15
bmi2     -12.056213     24.890743000 26.507217851     3.73894961  4.53851342  1.798648e-33
age      -25.581075     37.241975892 48.990817991     9.72107748 15.54647228 2.477828e-144

$`2`
        v.test Mean in category Overall mean sd in category Overall sd     p.value
bmi2 -2.082651         25.90216     26.50722       3.937503   4.538513 0.037283043
age  -2.789666         46.21462     48.99082      15.503033  15.546472 0.005276239

$`3`
            v.test Mean in category Overall mean sd in category  Overall sd      p.value
sIgE_f3  10.194439        0.1039498  0.009219938      0.2568479  0.06860917 2.099535e-24
sIgE_f17  4.599242        6.4399356  1.793797158      4.7126062  7.45872089 4.240308e-06
sIgE_f36  2.949079        0.1518832  0.038784940      0.2040307  0.28315734 3.187226e-03
sIgE_f20  1.998084        0.2144743  0.083349557      0.2228088  0.48453963 4.570757e-02
age      -3.821272       40.9447943 48.990817991     13.0824425 15.54647228 1.327652e-04

$`4`
            v.test Mean in category Overall mean sd in category  Overall sd       p.value
sIgE_f17 27.813053      20.20124627  1.793797158      21.629315  7.45872089 3.015940e-170
sIgE_f20 22.037930       1.03085274  0.083349557       1.631123  0.48453963 1.247109e-107
sIgE_f4  18.862142       0.96640914  0.072516311       1.881997  0.53408927  2.335618e-79
sIgE_f14 14.894169       0.67007808  0.046205234       1.753952  0.47206221  3.596293e-50
sIgE_f36 14.751227       0.40941150  0.038784940       1.036971  0.28315734  3.021231e-49
sIgE_f2  12.892064       0.69863218  0.060153551       2.080167  0.55814025  4.989076e-38
sIgE_f3  10.637942       0.07398196  0.009219938       0.185565  0.06860917  1.984654e-26
sIgE_f13  9.178780       4.28208805  0.324389665      18.721848  4.85933840  4.360025e-20
sIgE_f1   6.401634       1.07441269  0.082481475       6.837547  1.74626497  1.537229e-10
sIgE_f18  5.043438       0.52941789  0.041507056       4.279045  1.09026788  4.572417e-07
age      -4.751317      42.43651669 48.990817991      14.774762 15.54647228  2.020965e-06

Random Data clusters with DEL (Deep Embedding Clustering layer)

#result_rand_uft_DEL_k <- read.csv("/Users/xbasra/Documents/Data/Clustering_Food_Alergies/Intermediate/CsvData_Output/result_rand_food_uft_DEL_k.csv")
result_rand_uft_DEL_k <- read.csv("/Users/xbasra/Documents/Data/Clustering_Food_Alergies/Intermediate/CsvData_Output/result_rand_uft_DEL_k.csv")
result_rand_uft_DEL_k$farmlive[result_rand_uft_DEL_k$farmlive == ""] <- NA
result_rand_uft_DEL_k <-  result_rand_uft_DEL_k %>% replace_na (list(farmlive = 'no'))
table_rand_uft_DEL_k <- tableby(cluster ~ ., data = as.list(result_rand_uft_DEL_k))
summary(table_rand_uft_DEL_k, title = "Charachtaristcs of Clusters")

Table: Charachtaristcs of Clusters
0 (N=49) 1 (N=482) 2 (N=28) 3 (N=104) 4 (N=440) Total (N=1103) p value
sIgE_f1 < 0.001
   Mean (SD) 0.083 (0.196) 0.000 (0.000) 0.191 (0.540) 0.083 (0.189) 0.000 (0.000) 0.016 (0.117)
   Range 0.000 - 1.032 0.000 - 0.000 0.000 - 2.845 0.000 - 0.990 0.000 - 0.000 0.000 - 2.845
sIgE_f2 < 0.001
   Mean (SD) 0.113 (0.403) 0.000 (0.000) 0.579 (1.506) 0.109 (0.225) 0.000 (0.000) 0.030 (0.277)
   Range 0.000 - 2.750 0.000 - 0.000 0.000 - 6.849 0.000 - 1.091 0.000 - 0.000 0.000 - 6.849
sIgE_f3 < 0.001
   Mean (SD) 0.021 (0.038) 0.000 (0.000) 0.043 (0.062) 0.012 (0.020) 0.000 (0.000) 0.003 (0.016)
   Range 0.000 - 0.213 0.000 - 0.000 0.000 - 0.211 0.000 - 0.080 0.000 - 0.000 0.000 - 0.213
sIgE_f4 < 0.001
   Mean (SD) 0.281 (0.581) 0.000 (0.000) 0.773 (1.718) 0.036 (0.076) 0.000 (0.000) 0.035 (0.324)
   Range 0.000 - 2.543 0.000 - 0.000 0.000 - 8.417 0.000 - 0.428 0.000 - 0.000 0.000 - 8.417
sIgE_f13 < 0.001
   Mean (SD) 0.517 (0.548) 0.002 (0.030) 5.907 (25.114) 0.130 (0.190) 0.002 (0.020) 0.187 (4.042)
   Range 0.013 - 1.957 0.000 - 0.642 0.000 - 133.659 0.000 - 1.017 0.000 - 0.411 0.000 - 133.659
sIgE_f14 < 0.001
   Mean (SD) 0.112 (0.215) 0.000 (0.000) 0.744 (1.782) 0.008 (0.020) 0.000 (0.000) 0.025 (0.306)
   Range 0.000 - 0.833 0.000 - 0.000 0.000 - 8.505 0.000 - 0.160 0.000 - 0.000 0.000 - 8.505
sIgE_f17 < 0.001
   Mean (SD) 6.966 (5.245) 0.013 (0.086) 27.282 (21.898) 1.724 (1.641) 0.010 (0.082) 1.174 (5.760)
   Range 0.000 - 20.156 0.000 - 1.014 0.000 - 76.467 0.000 - 6.215 0.000 - 1.011 0.000 - 76.467
sIgE_f18 < 0.001
   Mean (SD) 0.103 (0.415) 0.002 (0.031) 1.830 (8.835) 0.029 (0.165) 0.001 (0.015) 0.055 (1.416)
   Range 0.000 - 2.901 0.000 - 0.686 0.000 - 46.879 0.000 - 1.678 0.000 - 0.322 0.000 - 46.879
sIgE_f20 < 0.001
   Mean (SD) 0.301 (0.286) 0.001 (0.004) 1.251 (1.827) 0.066 (0.077) 0.001 (0.005) 0.052 (0.357)
   Range 0.000 - 1.294 0.000 - 0.041 0.000 - 9.959 0.000 - 0.527 0.000 - 0.057 0.000 - 9.959
sIgE_f36 < 0.001
   Mean (SD) 0.174 (0.222) 0.001 (0.006) 0.512 (1.466) 0.053 (0.054) 0.001 (0.007) 0.027 (0.250)
   Range 0.000 - 1.051 0.000 - 0.056 0.000 - 7.754 0.000 - 0.238 0.000 - 0.067 0.000 - 7.754
gender2 < 0.001
   females 21 (42.9%) 317 (65.8%) 14 (50.0%) 48 (46.2%) 183 (41.6%) 583 (52.9%)
   males 28 (57.1%) 165 (34.2%) 14 (50.0%) 56 (53.8%) 257 (58.4%) 520 (47.1%)
age < 0.001
   Mean (SD) 43.733 (13.832) 40.954 (12.001) 39.981 (14.744) 48.435 (15.603) 62.643 (9.183) 50.410 (15.390)
   Range 20.867 - 77.130 18.146 - 73.475 21.217 - 70.735 19.266 - 75.949 26.511 - 77.746 18.146 - 77.746
bmi2 < 0.001
   Mean (SD) 26.104 (4.237) 24.543 (3.447) 25.762 (4.977) 26.526 (4.329) 27.743 (4.054) 26.107 (4.127)
   Range 20.069 - 37.950 17.404 - 42.768 18.939 - 37.545 19.223 - 41.007 16.975 - 44.816 16.975 - 44.816
farmlive
    0 (0.0%) 0 (0.0%) 0 (0.0%) 0 (0.0%) 0 (0.0%) 0 (0.0%)
   no 46 (93.9%) 444 (92.1%) 28 (100.0%) 99 (95.2%) 343 (78.0%) 960 (87.0%)
   yes 3 (6.1%) 38 (7.9%) 0 (0.0%) 5 (4.8%) 97 (22.0%) 143 (13.0%)
family_allergy_hist < 0.001
   no 19 (38.8%) 223 (46.3%) 6 (21.4%) 62 (59.6%) 385 (87.5%) 695 (63.0%)
   yes 30 (61.2%) 259 (53.7%) 22 (78.6%) 42 (40.4%) 55 (12.5%) 408 (37.0%)
# adding the id variable 
#result_food_uft_DEL_k$ID <- food_data_id$ID 
#write.csv(result_food_uft_DEL_k, "/Users/xbasra/Documents/Data/Clustering_Food_Alergies/CsvData/result_food_uft_DEL_k.csv")

Charachtiristic Analysis

result_rand_uft_DEL_k$cluster <- as.factor(result_rand_uft_DEL_k$cluster)
#result_food_uft_DEL_k <- result_food_uft_DEL_k[-c(1,2,20)]
catdes(result_rand_uft_DEL_k, 16)

Link between the cluster variable and the categorical variables (chi-square test)
=================================================================================
                         p.value df
family_allergy_hist 3.424012e-43  4
gender2             5.745123e-12  4
farmlive            2.530325e-11  4

Description of each cluster by the categories
=============================================
$`0`
                         Cla/Mod  Mod/Cla   Global      p.value    v.test
family_allergy_hist=yes 7.352941 61.22449 36.99003 0.0004907976  3.485729
family_allergy_hist=no  2.733813 38.77551 63.00997 0.0004907976 -3.485729

$`1`
                         Cla/Mod   Mod/Cla   Global      p.value     v.test
family_allergy_hist=yes 63.48039 53.734440 36.99003 2.903413e-24  10.162890
gender2=females         54.37393 65.767635 52.85585 2.998922e-14   7.598366
farmlive=no             46.25000 92.116183 87.03536 6.721713e-06   4.502315
farmlive=yes            26.57343  7.883817 12.96464 6.721713e-06  -4.502315
gender2=males           31.73077 34.232365 47.14415 2.998922e-14  -7.598366
family_allergy_hist=no  32.08633 46.265560 63.00997 2.903413e-24 -10.162890

$`2`
                          Cla/Mod   Mod/Cla   Global      p.value    v.test
family_allergy_hist=yes 5.3921569  78.57143 36.99003 7.660114e-06  4.474470
farmlive=no             2.9166667 100.00000 87.03536 1.944940e-02  2.336804
farmlive=yes            0.0000000   0.00000 12.96464 1.944940e-02 -2.336804
family_allergy_hist=no  0.8633094  21.42857 63.00997 7.660114e-06 -4.474470

$`3`
               Cla/Mod   Mod/Cla   Global     p.value    v.test
farmlive=no  10.312500 95.192308 87.03536 0.004857209  2.816354
farmlive=yes  3.496503  4.807692 12.96464 0.004857209 -2.816354

$`4`
                         Cla/Mod  Mod/Cla   Global      p.value     v.test
family_allergy_hist=no  55.39568 87.50000 63.00997 2.020566e-46  14.305542
farmlive=yes            67.83217 22.04545 12.96464 5.258224e-13   7.218453
gender2=males           49.42308 58.40909 47.14415 1.026148e-09   6.105289
gender2=females         31.38937 41.59091 52.85585 1.026148e-09  -6.105289
farmlive=no             35.72917 77.95455 87.03536 5.258224e-13  -7.218453
family_allergy_hist=yes 13.48039 12.50000 36.99003 2.020566e-46 -14.305542


Link between the cluster variable and the quantitative variables
================================================================
               Eta2       P-value
sIgE_f17 0.60196868 7.499421e-218
age      0.43899232 3.695744e-136
sIgE_f20 0.32563794  2.075189e-92
sIgE_f3  0.26464644  7.440968e-72
sIgE_f4  0.16694806  2.605188e-42
sIgE_f14 0.14940898  2.167347e-37
bmi2     0.12669886  3.528532e-31
sIgE_f2  0.12139732  9.383073e-30
sIgE_f36 0.12067931  1.460744e-29
sIgE_f1  0.11707576  1.338788e-28
sIgE_f13 0.05296825  3.179828e-12
sIgE_f18 0.04120260  2.194434e-09

Description of each cluster by quantitative variables
=====================================================
$`0`
            v.test Mean in category Overall mean sd in category  Overall sd      p.value
sIgE_f3   7.815142       0.02089372  0.003145542     0.03776886  0.01625494 5.490118e-15
sIgE_f17  7.200998       6.96621397  1.174252032     5.19134622  5.75707008 5.977324e-13
sIgE_f4   5.428826       0.28128416  0.035469421     0.57498788  0.32409368 5.672608e-08
sIgE_f20  4.990445       0.30061171  0.051857938     0.28312616  0.35677871 6.024033e-07
sIgE_f36  4.221718       0.17415762  0.026534870     0.22019235  0.25028371 2.424472e-05
sIgE_f1   4.067095       0.08298353  0.016341103     0.19364583  0.11728300 4.760291e-05
sIgE_f2   2.142614       0.11283843  0.029970671     0.39932637  0.27682810 3.214410e-02
sIgE_f14  2.053939       0.11248115  0.024610767     0.21325191  0.30621284 3.998155e-02
age      -3.106838      43.73298767 50.409945023    13.68964100 15.38255887 1.891003e-03

$`1`
             v.test Mean in category Overall mean sd in category  Overall sd      p.value
sIgE_f14  -2.350554     0.000000e+00  0.024610767    0.000000000  0.30621284 1.874548e-02
sIgE_f36  -2.977528     1.053667e-03  0.026534870    0.006484391  0.25028371 2.905830e-03
sIgE_f2   -3.166320     0.000000e+00  0.029970671    0.000000000  0.27682810 1.543809e-03
sIgE_f4   -3.200752     0.000000e+00  0.035469421    0.000000000  0.32409368 1.370694e-03
sIgE_f1   -4.074880     0.000000e+00  0.016341103    0.000000000  0.11728300 4.603809e-05
sIgE_f20  -4.202133     5.953897e-04  0.051857938    0.004200290  0.35677871 2.644118e-05
sIgE_f3   -5.659508     0.000000e+00  0.003145542    0.000000000  0.01625494 1.518077e-08
sIgE_f17  -5.898697     1.309996e-02  1.174252032    0.085751671  5.75707008 3.663829e-09
bmi2     -11.086278     2.454294e+01 26.106734104    3.443842165  4.12537389 1.462471e-28
age      -17.978175     4.095398e+01 50.409945023   11.988056542 15.38255887 2.888443e-72

$`2`
            v.test Mean in category Overall mean sd in category  Overall sd       p.value
sIgE_f17 24.295775      27.28183602  1.174252032    21.50318294  5.75707008 2.172658e-130
sIgE_f20 18.004145       1.25082112  0.051857938     1.79409828  0.35677871  1.807698e-72
sIgE_f3  13.145783       0.04303023  0.003145542     0.06050838  0.01625494  1.799323e-39
sIgE_f14 12.584599       0.74388945  0.024610767     1.74950012  0.30621284  2.566440e-36
sIgE_f4  12.188176       0.77276852  0.035469421     1.68728552  0.32409368  3.593742e-34
sIgE_f2  10.632950       0.57938296  0.029970671     1.47859712  0.27682810  2.093828e-26
sIgE_f36 10.391927       0.51200563  0.026534870     1.43978253  0.25028371  2.698459e-25
sIgE_f1   7.971785       0.19085300  0.016341103     0.53057583  0.11728300  1.563993e-15
sIgE_f13  7.586510       5.90737712  0.186718716    24.66160243  4.03989038  3.286379e-14
sIgE_f18  6.718500       1.83000093  0.054806598     8.67591954  1.41559548  1.836048e-11
age      -3.632354      39.98074171 50.409945023    14.47841225 15.38255887  2.808478e-04

$`3`
          v.test Mean in category Overall mean sd in category Overall sd      p.value
sIgE_f1 6.071957       0.08282846  0.016341103      0.1880077 0.11728300 1.263605e-09
sIgE_f3 5.789448       0.01193168  0.003145542      0.0200712 0.01625494 7.061804e-09
sIgE_f2 3.046537       0.10871004  0.029970671      0.2244035 0.27682810 2.314938e-03

$`4`
            v.test Mean in category Overall mean sd in category  Overall sd       p.value
age      21.505709     6.264264e+01 50.409945023    9.172829372 15.38255887 1.376644e-102
bmi2     10.726381     2.774301e+01 26.106734104    4.049642119  4.12537389  7.653490e-27
sIgE_f14 -2.173512     0.000000e+00  0.024610767    0.000000000  0.30621284  2.974177e-02
sIgE_f36 -2.763447     9.594175e-04  0.026534870    0.006813830  0.25028371  5.719440e-03
sIgE_f2  -2.927835     0.000000e+00  0.029970671    0.000000000  0.27682810  3.413307e-03
sIgE_f4  -2.959674     0.000000e+00  0.035469421    0.000000000  0.32409368  3.079646e-03
sIgE_f1  -3.767963     0.000000e+00  0.016341103    0.000000000  0.11728300  1.645848e-04
sIgE_f20 -3.876671     7.136078e-04  0.051857938    0.005353473  0.35677871  1.058954e-04
sIgE_f3  -5.233238     0.000000e+00  0.003145542    0.000000000  0.01625494  1.665657e-07
sIgE_f17 -5.469448     9.898991e-03  1.174252032    0.081973061  5.75707008  4.514381e-08

With asthma and Rhinitis Data clusters with DEL (Deep Embedding Clustering layer)

result_as_rh_uft_DEL <- read.csv('/Users/xbasra/Documents/Data/Clustering_Food_Alergies/Intermediate/CsvData_Output/result_as_rh_uft_DEL.csv')
result_as_rh_uft_DEL$farmlive[result_as_rh_uft_DEL$farmlive == ""] <- NA
result_as_rh_uft_DEL <-  result_as_rh_uft_DEL %>% replace_na (list(farmlive = 'no'))
table_as_rh_uft_DEL <- tableby(cluster ~ ., data = as.list(result_as_rh_uft_DEL))
summary(table_as_rh_uft_DEL, title = "Charachtaristcs of Clusters")

Table: Charachtaristcs of Clusters
0 (N=279) 1 (N=23) 2 (N=670) 3 (N=22) 4 (N=84) Total (N=1078) p value
sIgE_f1 < 0.001
   Mean (SD) 0.117 (0.622) 3.788 (15.346) 0.002 (0.028) 0.596 (1.096) 0.151 (0.852) 0.136 (2.300)
   Range 0.000 - 8.179 0.000 - 73.692 0.000 - 0.626 0.020 - 4.695 0.000 - 7.725 0.000 - 73.692
sIgE_f2 < 0.001
   Mean (SD) 0.078 (0.202) 1.035 (3.295) 0.000 (0.006) 2.251 (2.998) 0.072 (0.208) 0.094 (0.728)
   Range 0.000 - 1.549 0.000 - 13.623 0.000 - 0.140 0.034 - 13.006 0.000 - 1.338 0.000 - 13.623
sIgE_f3 < 0.001
   Mean (SD) 0.013 (0.028) 0.178 (0.391) 0.000 (0.003) 0.255 (0.357) 0.026 (0.064) 0.015 (0.090)
   Range 0.000 - 0.213 0.000 - 1.332 0.000 - 0.042 0.015 - 1.080 0.000 - 0.310 0.000 - 1.332
sIgE_f4 < 0.001
   Mean (SD) 0.112 (0.319) 1.773 (3.369) 0.001 (0.009) 0.319 (0.370) 0.497 (1.310) 0.112 (0.687)
   Range 0.000 - 2.275 0.000 - 12.512 0.000 - 0.224 0.030 - 1.291 0.000 - 7.459 0.000 - 12.512
sIgE_f13 < 0.001
   Mean (SD) 0.302 (0.866) 8.824 (27.898) 0.016 (0.079) 1.515 (3.750) 1.329 (5.285) 0.411 (4.497)
   Range 0.000 - 11.866 0.000 - 133.659 0.000 - 0.830 0.021 - 16.776 0.000 - 45.700 0.000 - 133.659
sIgE_f14 < 0.001
   Mean (SD) 0.048 (0.158) 1.759 (3.429) 0.000 (0.001) 0.225 (0.593) 0.216 (0.729) 0.071 (0.601)
   Range 0.000 - 1.184 0.000 - 12.386 0.000 - 0.020 0.000 - 2.785 0.000 - 5.216 0.000 - 12.386
sIgE_f17 < 0.001
   Mean (SD) 4.338 (4.800) 44.076 (35.504) 0.077 (0.243) 1.691 (4.311) 10.156 (12.891) 2.937 (9.526)
   Range 0.000 - 23.778 0.000 - 111.259 0.000 - 1.619 0.000 - 17.146 0.000 - 39.910 0.000 - 111.259
sIgE_f18 < 0.001
   Mean (SD) 0.041 (0.212) 2.301 (9.729) 0.005 (0.071) 0.040 (0.071) 0.069 (0.271) 0.069 (1.436)
   Range 0.000 - 2.901 0.000 - 46.879 0.000 - 1.678 0.000 - 0.244 0.000 - 1.770 0.000 - 46.879
sIgE_f20 < 0.001
   Mean (SD) 0.173 (0.337) 1.825 (2.624) 0.006 (0.027) 0.214 (0.401) 0.531 (1.317) 0.133 (0.625)
   Range 0.000 - 3.469 0.000 - 9.959 0.000 - 0.343 0.000 - 1.686 0.000 - 8.781 0.000 - 9.959
sIgE_f36 < 0.001
   Mean (SD) 0.086 (0.155) 0.901 (1.941) 0.007 (0.026) 0.067 (0.120) 0.175 (0.660) 0.061 (0.368)
   Range 0.000 - 1.051 0.000 - 7.754 0.000 - 0.277 0.000 - 0.430 0.000 - 5.642 0.000 - 7.754
gender2 0.024
   females 149 (53.4%) 14 (60.9%) 396 (59.1%) 7 (31.8%) 40 (47.6%) 606 (56.2%)
   males 130 (46.6%) 9 (39.1%) 274 (40.9%) 15 (68.2%) 44 (52.4%) 472 (43.8%)
age < 0.001
   Mean (SD) 44.408 (14.931) 39.107 (15.451) 49.341 (15.383) 51.708 (18.292) 45.759 (14.349) 47.615 (15.443)
   Range 19.058 - 77.130 20.741 - 74.510 19.535 - 76.656 21.113 - 76.190 19.415 - 78.075 19.058 - 78.075
bmi2 < 0.001
   Mean (SD) 26.516 (4.575) 30.321 (10.071) 25.964 (3.511) 29.757 (4.191) 33.215 (6.604) 26.842 (4.790)
   Range 17.915 - 38.725 19.044 - 50.058 17.404 - 34.475 20.809 - 37.545 19.841 - 44.413 17.404 - 50.058
farmlive
    0 (0.0%) 0 (0.0%) 0 (0.0%) 0 (0.0%) 0 (0.0%) 0 (0.0%)
   no 254 (91.0%) 23 (100.0%) 599 (89.4%) 20 (90.9%) 72 (85.7%) 968 (89.8%)
   yes 25 (9.0%) 0 (0.0%) 71 (10.6%) 2 (9.1%) 12 (14.3%) 110 (10.2%)
family_allergy_hist 0.006
   no 106 (38.0%) 10 (43.5%) 324 (48.4%) 8 (36.4%) 27 (32.1%) 475 (44.1%)
   yes 173 (62.0%) 13 (56.5%) 346 (51.6%) 14 (63.6%) 57 (67.9%) 603 (55.9%)
# adding the id variable 
#result_food_uft_DEL_k$ID <- food_data_id$ID 
#write.csv(result_food_uft_DEL_k, "/Users/xbasra/Documents/Data/Clustering_Food_Alergies/CsvData/result_food_uft_DEL_k.csv")

Charachtiristic Analysis

result_as_rh_uft_DEL$cluster <- as.factor(result_as_rh_uft_DEL$cluster)
catdes(result_as_rh_uft_DEL, 16)

Without asthma and Rhinitis Data clusters with DEL (Deep Embedding Clustering layer)

result_no_as_rh_uft_DEL <- read.csv('/Users/xbasra/Documents/Data/Clustering_Food_Alergies/Intermediate/CsvData_Output/result_no_as_rh_uft_DEL.csv')
result_no_as_rh_uft_DEL$farmlive[result_no_as_rh_uft_DEL$farmlive == ""] <- NA
result_no_as_rh_uft_DEL <-  result_no_as_rh_uft_DEL %>% replace_na (list(farmlive = 'no'))
table_no_as_rh_uft_DEL <- tableby(cluster ~ ., data = as.list(result_no_as_rh_uft_DEL))
summary(table_no_as_rh_uft_DEL, title = "Charachtaristcs of Clusters")

Table: Charachtaristcs of Clusters
0 (N=597) 1 (N=148) 2 (N=49) Total (N=794) p value
sIgE_f1 < 0.001
   Mean (SD) 0.000 (0.000) 0.048 (0.141) 0.010 (0.030) 0.010 (0.064)
   Range 0.000 - 0.000 0.000 - 0.918 0.000 - 0.149 0.000 - 0.918
sIgE_f2 < 0.001
   Mean (SD) 0.000 (0.000) 0.054 (0.159) 0.066 (0.316) 0.014 (0.106)
   Range 0.000 - 0.000 0.000 - 1.091 0.000 - 2.143 0.000 - 2.143
sIgE_f3 < 0.001
   Mean (SD) 0.000 (0.000) 0.008 (0.018) 0.008 (0.026) 0.002 (0.011)
   Range 0.000 - 0.000 0.000 - 0.067 0.000 - 0.134 0.000 - 0.134
sIgE_f4 < 0.001
   Mean (SD) 0.000 (0.000) 0.042 (0.145) 0.174 (0.593) 0.019 (0.164)
   Range 0.000 - 0.000 0.000 - 1.129 0.000 - 2.543 0.000 - 2.543
sIgE_f13 < 0.001
   Mean (SD) 0.000 (0.000) 0.061 (0.185) 3.170 (21.379) 0.207 (5.315)
   Range 0.000 - 0.000 0.000 - 1.596 0.000 - 149.746 0.000 - 149.746
sIgE_f14 < 0.001
   Mean (SD) 0.000 (0.000) 0.012 (0.051) 0.156 (0.731) 0.012 (0.185)
   Range 0.000 - 0.000 0.000 - 0.366 0.000 - 4.886 0.000 - 4.886
sIgE_f17 < 0.001
   Mean (SD) 0.000 (0.000) 0.465 (1.241) 2.520 (7.328) 0.242 (1.977)
   Range 0.000 - 0.000 0.000 - 7.065 0.000 - 36.193 0.000 - 36.193
sIgE_f18 < 0.001
   Mean (SD) 0.000 (0.000) 0.010 (0.037) 0.036 (0.140) 0.004 (0.039)
   Range 0.000 - 0.000 0.000 - 0.322 0.000 - 0.868 0.000 - 0.868
sIgE_f20 < 0.001
   Mean (SD) 0.000 (0.000) 0.036 (0.099) 0.141 (0.444) 0.015 (0.122)
   Range 0.000 - 0.000 0.000 - 0.606 0.000 - 2.149 0.000 - 2.149
sIgE_f36 < 0.001
   Mean (SD) 0.000 (0.000) 0.027 (0.073) 0.058 (0.200) 0.009 (0.061)
   Range 0.000 - 0.000 0.000 - 0.406 0.000 - 1.081 0.000 - 1.081
gender2 0.262
   females 303 (50.8%) 84 (56.8%) 29 (59.2%) 416 (52.4%)
   males 294 (49.2%) 64 (43.2%) 20 (40.8%) 378 (47.6%)
age 0.920
   Mean (SD) 50.736 (15.755) 51.145 (14.937) 51.481 (14.445) 50.858 (15.512)
   Range 18.146 - 77.746 19.302 - 76.877 22.091 - 74.524 18.146 - 77.746
bmi2 < 0.001
   Mean (SD) 24.713 (2.715) 28.662 (3.831) 34.498 (5.473) 26.053 (4.136)
   Range 16.975 - 30.653 18.904 - 41.197 22.097 - 46.094 16.975 - 46.094
farmlive
    0 (0.0%) 0 (0.0%) 0 (0.0%) 0 (0.0%)
   no 504 (84.4%) 132 (89.2%) 44 (89.8%) 680 (85.6%)
   yes 93 (15.6%) 16 (10.8%) 5 (10.2%) 114 (14.4%)
family_allergy_hist 0.089
   no 419 (70.2%) 101 (68.2%) 27 (55.1%) 547 (68.9%)
   yes 178 (29.8%) 47 (31.8%) 22 (44.9%) 247 (31.1%)
# adding the id variable 
#result_food_uft_DEL_k$ID <- food_data_id$ID 
#write.csv(result_food_uft_DEL_k, "/Users/xbasra/Documents/Data/Clustering_Food_Alergies/CsvData/result_food_uft_DEL_k.csv")

Charachtiristic Analysis

result_no_as_rh_uft_DEL$cluster <- as.factor(result_no_as_rh_uft_DEL$cluster)
catdes(result_no_as_rh_uft_DEL, 16)

adding the id varaible

#resultft_DEL_all$ID <- food_data_id$ID
resultft_DEL_all_5$ID <- food_data_id$ID
result_rand_uft_DEL_k$ID <- rand_food_data_id$ID
result_as_rh_uft_DEL$ID <- as_ri_food_id$ID
result_no_as_rh_uft_DEL$ID <- no_as_ri_food_id$ID
write.csv(resultft_DEL_all,'/Users/xbasra/Documents/Data/Clustering_Food_Alergies/Results/CSVData/resultft_DEL_all_id_5.csv')
write.csv(result_rand_uft_DEL_k,'/Users/xbasra/Documents/Data/Clustering_Food_Alergies/Results/CSVData/result_rand_uft_DEL_k_id.csv')
write.csv(result_as_rh_uft_DEL,'/Users/xbasra/Documents/Data/Clustering_Food_Alergies/Results/CSVData/result_as_rh_uft_DEL_id.csv')
write.csv(result_no_as_rh_uft_DEL,'/Users/xbasra/Documents/Data/Clustering_Food_Alergies/Results/CSVData/result_no_as_rh_uft_DEL_id.csv')
LS0tCnRpdGxlOiAiUmVzdWx0cyBmb29kIGRhdGEgY2x1c3RlcmluZyBERUwtIDI1L01heS8yMDIwIgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdAogIHBkZl9kb2N1bWVudDogZGVmYXVsdAotLS0KCmBgYHtyIGxvYWRsaWIsIGluY2x1ZGU9RkFMU0V9CmxpYnJhcnkoRmFjdG9NaW5lUikKbGlicmFyeShmYWN0b2V4dHJhKQpsaWJyYXJ5KGFyc2VuYWwpCmxpYnJhcnkoUnRzbmUpCmxpYnJhcnkocGxvdGx5KQpsaWJyYXJ5KHRpZHl2ZXJzZSkKYGBgCgojIEFsbCBEYXRhIGNsdXN0ZXJzIChEZWVwIGxlYXJuaW5nLCBERUwgKERlZXAgRW1iZWRkaW5nIENsdXN0ZXJpbmcgbGF5ZXIpKQoKYGBge3J9CnJlc3VsdGZ0X0RFTF9hbGxfNSA8LSByZWFkLmNzdignL1VzZXJzL3hiYXNyYS9Eb2N1bWVudHMvRGF0YS9DbHVzdGVyaW5nX0Zvb2RfQWxlcmdpZXMvSW50ZXJtZWRpYXRlL0NzdkRhdGFfT3V0cHV0L3Jlc3VsdGZ0X0RFTF9hbGxfNV9jbHVzdGVyLmNzdicpCiMgcmVwbGFjaW5nIHRoZSBlbXB0eSBzcGFjZSAiIiB2YWx1ZXMgd2l0aCBubyBhcyBkb25lIGluIHRoZSBtYWluIGFuYWx5c2lzIGZpbGUKcmVzdWx0ZnRfREVMX2FsbF81JGZhcm1saXZlW3Jlc3VsdGZ0X0RFTF9hbGxfNSRmYXJtbGl2ZSA9PSAiIl0gPC0gTkEKcmVzdWx0ZnRfREVMX2FsbF81IDwtICByZXN1bHRmdF9ERUxfYWxsXzUgJT4lIHJlcGxhY2VfbmEgKGxpc3QoZmFybWxpdmUgPSAnbm8nKSkKI3RzbmVfY29udmVydGVkX2Zvb2QkY2xfREVMIDwtIGZhY3RvcihyZXN1bHRmdF9ERUxfYWxsJGNsdXN0ZXIpCiNnZ3Bsb3QodHNuZV9jb252ZXJ0ZWRfZm9vZCwgYWVzKHg9WCwgeT1ZLCBjb2xvcj1jbF9ERUwpKSArIGdlb21fcG9pbnQoKQpyZXN1bHRmdF9ERUxfYWxsXzUkY2x1c3RlciA8LSBhcy5mYWN0b3IocmVzdWx0ZnRfREVMX2FsbF81JGNsdXN0ZXIpCmBgYAoKYGBge3J9CkRFQ19FbWJlZGRpbmdfNSA9IHJlYWQuY3N2KCcvVXNlcnMveGJhc3JhL0RvY3VtZW50cy9EYXRhL0NsdXN0ZXJpbmdfRm9vZF9BbGVyZ2llcy9JbnRlcm1lZGlhdGUvQ3N2RGF0YV9PdXRwdXQvREVDX0VtYmVkZGluZ181LmNzdicpCmBgYAoKYGBge3J9CnNldC5zZWVkKDEwKQojdHNuZV9jb252ZXJ0ZWRfZm9vZF9ERUwgPC0gUnRzbmUoWCA9IEVETF9FbWJlZGRpbmcgLHBlcnBsZXhpdHk9IDIwMCwgaXNfZGlzdGFuY2UgPSBGQUxTRSwgY2hlY2tfZHVwbGljYXRlcyA9IEZBTFNFKQp0c25lX2NvbnZlcnRlZF9mb29kX0RFQ181IDwtIFJ0c25lKFggPSBERUNfRW1iZWRkaW5nXzUgLHBlcnBsZXhpdHk9IDE1MCwgaXNfZGlzdGFuY2UgPSBGQUxTRSwgY2hlY2tfZHVwbGljYXRlcyA9IEZBTFNFKQoKdHNuZV9jb252ZXJ0ZWRfZm9vZF9ERUNfNSA8LSB0c25lX2NvbnZlcnRlZF9mb29kX0RFQ181JFkgJT4lCiAgZGF0YS5mcmFtZSgpICU+JQogIHNldE5hbWVzKGMoIlgiLCAiWSIpKQoKdHNuZV9jb252ZXJ0ZWRfZm9vZF9ERUNfNSRjbCA8LSBmYWN0b3IocmVzdWx0ZnRfREVMX2FsbF81JGNsdXN0ZXIpCmdncGxvdCh0c25lX2NvbnZlcnRlZF9mb29kX0RFQ181LCBhZXMoeD1YLCB5PVksIGNvbG9yPWNsKSkgKyBnZW9tX3BvaW50KCkKYGBgCgpgYGB7cn0KdHNuZV9jb252ZXJ0ZWRfZm9vZF9ERUNfM2RfNSA8LSBSdHNuZShYID0gREVDX0VtYmVkZGluZ181ICxwZXJwbGV4aXR5PSAxNTAsIGRpbXMgPSAzLCBpc19kaXN0YW5jZSA9IEZBTFNFLCBjaGVja19kdXBsaWNhdGVzID0gRkFMU0UpCgp0c25lX2NvbnZlcnRlZF9mb29kX0RFQ18zZF81IDwtIHRzbmVfY29udmVydGVkX2Zvb2RfREVDXzNkXzUkWSAlPiUKICBkYXRhLmZyYW1lKCkgJT4lCiAgc2V0TmFtZXMoYygiWCIsICJZIiwgIloiKSkKCnRzbmVfY29udmVydGVkX2Zvb2RfREVDXzNkXzUkY2wgPC0gZmFjdG9yKHJlc3VsdGZ0X0RFTF9hbGxfNSRjbHVzdGVyKQoKcCA8LSBwbG90X2x5KHRzbmVfY29udmVydGVkX2Zvb2RfREVDXzNkXzUsIHggPSB+WCwgeSA9IH5ZLCB6ID0gflosIGNvbG9yID0gfmNsLCBjb2xvcnMgPSBjKCcjQkYzODJBJywgJyMwQzRCOEUnKSkgJT4lCiAgYWRkX21hcmtlcnMoKSAlPiUKICBsYXlvdXQoc2NlbmUgPSBsaXN0KHhheGlzID0gbGlzdCh0aXRsZSA9ICdEaW0xJyksCiAgICAgICAgICAgICAgICAgICAgIHlheGlzID0gbGlzdCh0aXRsZSA9ICdEaW0yJyksCiAgICAgICAgICAgICAgICAgICAgIHpheGlzID0gbGlzdCh0aXRsZSA9ICdEaW0zJykpKQpwCmBgYAoKCgpgYGB7cn0KZGlzdF9wbG90X2NsdXN0IDwtZnVuY3Rpb24ob3JpZ2luYWxfZGF0YSwgc2VsZWN0ZWRfdmFyaWFibGUpewogIHNlbGVjdGVkX3ZhcmlhYmxlIDwtIGVucXVvKHNlbGVjdGVkX3ZhcmlhYmxlKQogIGdncGxvdChvcmlnaW5hbF9kYXRhLCBhZXMoVVEoc2VsZWN0ZWRfdmFyaWFibGUpKSkgKyBnZW9tX2RlbnNpdHkoYWVzKGZpbGwgPSBmYWN0b3IoY2x1c3RlcikpLCBhbHBoYT0wLjgpICsKICAgIGxhYnModGl0bGUgPSAiRGVuc2l0eSBwbG90IiwKICAgICAgICAgc3VidGl0bGU9InNJZ0VfZjEgb2YgcGVyc29ucyBHcm91cGVkIGJ5IENsdXN0ZXJzIiwKICAgICAgICAgY2FwdGlvbj0iU291cmNlOiBTb3VyY2U6IHJlc3VsdHMgb2YgSGllcmFyY2hpY2FsIGNsdXN0ZXJpbmcgd2l0aCB0cmVlLWJhc2VkIGRpc3RhbmNlIGFuZCBkaXN0YW5jZSBkMSIsCiAgICAgICAgIHg9InNJZ0VfZjEiLAogICAgICAgICBmaWxsPSIjIENsdXN0ZXJzIikKfSAKYGBgCgpgYGB7cn0KZGlzdF9wbG90X2NsdXN0KG9yaWdpbmFsX2RhdGEgPSByZXN1bHRmdF9ERUxfYWxsXzUsIHNlbGVjdGVkX3ZhcmlhYmxlID0gYWdlKQpgYGAKCgojIyMgRGVuc2l0eSBwbG90IHNob2l3aW5nIHRoZSBhZ2UgZGlzdHJpYnV0aW9uIGZvciBlYWNoIGNsdXN0ZXIKYGBge3J9CnJlc3VsdGZ0X0RFTF9hbGwkY2x1c3RlciA8LSBhcy5mYWN0b3IocmVzdWx0ZnRfREVMX2FsbF81JGNsdXN0ZXIpCgphZ2VfZyA8LSBnZ3Bsb3QocmVzdWx0ZnRfREVMX2FsbF81LCBhZXMoc0lnRV9mMykpCmFnZV9wIDwtIGFnZV9nICsgZ2VvbV9kZW5zaXR5KGFlcyhmaWxsPWZhY3RvcihjbHVzdGVyKSksIGFscGhhPTAuOCkgKwogICAgbGFicyh0aXRsZT0iRGVuc2l0eSBwbG90IiwKICAgICAgICAgc3VidGl0bGU9InNJZ0VfZjEgb2YgcGVyc29ucyBHcm91cGVkIGJ5IENsdXN0ZXJzIiwKICAgICAgICAgY2FwdGlvbj0iU291cmNlOiBTb3VyY2U6IHJlc3VsdHMgb2YgSGllcmFyY2hpY2FsIGNsdXN0ZXJpbmcgd2l0aCB0cmVlLWJhc2VkIGRpc3RhbmNlIGFuZCBkaXN0YW5jZSBkMSIsCiAgICAgICAgIHg9InNJZ0VfZjEiLAogICAgICAgICBmaWxsPSIjIENsdXN0ZXJzIikKCmdncGxvdGx5KGFnZV9wKQpgYGAKCgpgYGB7cn0KZyA8LSBnZ3Bsb3QocmVzdWx0ZnRfREVMX2FsbF81LCBhZXMoYm1pMikpICsgc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZSA9ICJTcGVjdHJhbCIpCnMgPC0gZyArIGdlb21faGlzdG9ncmFtKGFlcyhmaWxsPWZhY3RvcihjbHVzdGVyKSksIAogICAgICAgICAgICAgICAgICAgYmlucz01LCAKICAgICAgICAgICAgICAgICAgIGNvbD0iYmxhY2siLCAKICAgICAgICAgICAgICAgICAgIHNpemU9LjEpICsgICAjIGNoYW5nZSBudW1iZXIgb2YgYmlucwogIGxhYnModGl0bGU9Ikhpc3RvZ3JhbSB3aXRoIEZpeGVkIEJpbnMiLCAKICAgICAgIHN1YnRpdGxlPSJBZ2UgYWNyb3NzIGRpZmZlcmVudCBjbHVzdGVycyIsCiAgICAgICB4PSJBZ2UiLAogICAgICAgICBmaWxsPSIjIENsdXN0ZXJzIikgCgpnZ3Bsb3RseShzKQpgYGAKCmBgYHtyfQp0YWJsZV91ZnRfREVMX2FsbCA8LSB0YWJsZWJ5KGNsdXN0ZXIgfiAuLCBkYXRhID0gYXMubGlzdChyZXN1bHRmdF9ERUxfYWxsXzUpKQpzdW1tYXJ5KHRhYmxlX3VmdF9ERUxfYWxsLCB0aXRsZSA9ICJDaGFyYWNodGFyaXN0Y3Mgb2YgQ2x1c3RlcnMiKQojIGFkZGluZyB0aGUgaWQgdmFyaWFibGUgCiNyZXN1bHRfZm9vZF91ZnRfREVMX2skSUQgPC0gZm9vZF9kYXRhX2lkJElEIAojd3JpdGUuY3N2KHJlc3VsdF9mb29kX3VmdF9ERUxfaywgIi9Vc2Vycy94YmFzcmEvRG9jdW1lbnRzL0RhdGEvQ2x1c3RlcmluZ19Gb29kX0FsZXJnaWVzL0NzdkRhdGEvcmVzdWx0X2Zvb2RfdWZ0X0RFTF9rLmNzdiIpCmBgYAoKCgojIyBDaGFyYWNodGlyaXN0aWMgQW5hbHlzaXMKYGBge3IsIHdhcm5pbmc9RkFMU0V9CnJlc3VsdGZ0X0RFTF9hbGxfNSRjbHVzdGVyIDwtIGFzLmZhY3RvcihyZXN1bHRmdF9ERUxfYWxsXzUkY2x1c3RlcikKY2F0ZGVzKHJlc3VsdGZ0X0RFTF9hbGxfNSwgMTYpCmBgYAoKCgojIFJhbmRvbSBEYXRhIGNsdXN0ZXJzIHdpdGggREVMIChEZWVwIEVtYmVkZGluZyBDbHVzdGVyaW5nIGxheWVyKQoKYGBge3J9CiNyZXN1bHRfcmFuZF91ZnRfREVMX2sgPC0gcmVhZC5jc3YoIi9Vc2Vycy94YmFzcmEvRG9jdW1lbnRzL0RhdGEvQ2x1c3RlcmluZ19Gb29kX0FsZXJnaWVzL0ludGVybWVkaWF0ZS9Dc3ZEYXRhX091dHB1dC9yZXN1bHRfcmFuZF9mb29kX3VmdF9ERUxfay5jc3YiKQpyZXN1bHRfcmFuZF91ZnRfREVMX2sgPC0gcmVhZC5jc3YoIi9Vc2Vycy94YmFzcmEvRG9jdW1lbnRzL0RhdGEvQ2x1c3RlcmluZ19Gb29kX0FsZXJnaWVzL0ludGVybWVkaWF0ZS9Dc3ZEYXRhX091dHB1dC9yZXN1bHRfcmFuZF91ZnRfREVMX2suY3N2IikKcmVzdWx0X3JhbmRfdWZ0X0RFTF9rJGZhcm1saXZlW3Jlc3VsdF9yYW5kX3VmdF9ERUxfayRmYXJtbGl2ZSA9PSAiIl0gPC0gTkEKcmVzdWx0X3JhbmRfdWZ0X0RFTF9rIDwtICByZXN1bHRfcmFuZF91ZnRfREVMX2sgJT4lIHJlcGxhY2VfbmEgKGxpc3QoZmFybWxpdmUgPSAnbm8nKSkKdGFibGVfcmFuZF91ZnRfREVMX2sgPC0gdGFibGVieShjbHVzdGVyIH4gLiwgZGF0YSA9IGFzLmxpc3QocmVzdWx0X3JhbmRfdWZ0X0RFTF9rKSkKc3VtbWFyeSh0YWJsZV9yYW5kX3VmdF9ERUxfaywgdGl0bGUgPSAiQ2hhcmFjaHRhcmlzdGNzIG9mIENsdXN0ZXJzIikKIyBhZGRpbmcgdGhlIGlkIHZhcmlhYmxlIAojcmVzdWx0X2Zvb2RfdWZ0X0RFTF9rJElEIDwtIGZvb2RfZGF0YV9pZCRJRCAKI3dyaXRlLmNzdihyZXN1bHRfZm9vZF91ZnRfREVMX2ssICIvVXNlcnMveGJhc3JhL0RvY3VtZW50cy9EYXRhL0NsdXN0ZXJpbmdfRm9vZF9BbGVyZ2llcy9Dc3ZEYXRhL3Jlc3VsdF9mb29kX3VmdF9ERUxfay5jc3YiKQpgYGAKCiMjIENoYXJhY2h0aXJpc3RpYyBBbmFseXNpcwpgYGB7ciwgd2FybmluZz1GQUxTRX0KcmVzdWx0X3JhbmRfdWZ0X0RFTF9rJGNsdXN0ZXIgPC0gYXMuZmFjdG9yKHJlc3VsdF9yYW5kX3VmdF9ERUxfayRjbHVzdGVyKQojcmVzdWx0X2Zvb2RfdWZ0X0RFTF9rIDwtIHJlc3VsdF9mb29kX3VmdF9ERUxfa1stYygxLDIsMjApXQpjYXRkZXMocmVzdWx0X3JhbmRfdWZ0X0RFTF9rLCAxNikKYGBgCgojIFdpdGggYXN0aG1hIGFuZCBSaGluaXRpcyBEYXRhIGNsdXN0ZXJzIHdpdGggREVMIChEZWVwIEVtYmVkZGluZyBDbHVzdGVyaW5nIGxheWVyKQoKYGBge3J9CnJlc3VsdF9hc19yaF91ZnRfREVMIDwtIHJlYWQuY3N2KCcvVXNlcnMveGJhc3JhL0RvY3VtZW50cy9EYXRhL0NsdXN0ZXJpbmdfRm9vZF9BbGVyZ2llcy9JbnRlcm1lZGlhdGUvQ3N2RGF0YV9PdXRwdXQvcmVzdWx0X2FzX3JoX3VmdF9ERUwuY3N2JykKcmVzdWx0X2FzX3JoX3VmdF9ERUwkZmFybWxpdmVbcmVzdWx0X2FzX3JoX3VmdF9ERUwkZmFybWxpdmUgPT0gIiJdIDwtIE5BCnJlc3VsdF9hc19yaF91ZnRfREVMIDwtICByZXN1bHRfYXNfcmhfdWZ0X0RFTCAlPiUgcmVwbGFjZV9uYSAobGlzdChmYXJtbGl2ZSA9ICdubycpKQp0YWJsZV9hc19yaF91ZnRfREVMIDwtIHRhYmxlYnkoY2x1c3RlciB+IC4sIGRhdGEgPSBhcy5saXN0KHJlc3VsdF9hc19yaF91ZnRfREVMKSkKc3VtbWFyeSh0YWJsZV9hc19yaF91ZnRfREVMLCB0aXRsZSA9ICJDaGFyYWNodGFyaXN0Y3Mgb2YgQ2x1c3RlcnMiKQojIGFkZGluZyB0aGUgaWQgdmFyaWFibGUgCiNyZXN1bHRfZm9vZF91ZnRfREVMX2skSUQgPC0gZm9vZF9kYXRhX2lkJElEIAojd3JpdGUuY3N2KHJlc3VsdF9mb29kX3VmdF9ERUxfaywgIi9Vc2Vycy94YmFzcmEvRG9jdW1lbnRzL0RhdGEvQ2x1c3RlcmluZ19Gb29kX0FsZXJnaWVzL0NzdkRhdGEvcmVzdWx0X2Zvb2RfdWZ0X0RFTF9rLmNzdiIpCmBgYAoKIyMgQ2hhcmFjaHRpcmlzdGljIEFuYWx5c2lzCmBgYHtyLCB3YXJuaW5nPUZBTFNFfQpyZXN1bHRfYXNfcmhfdWZ0X0RFTCRjbHVzdGVyIDwtIGFzLmZhY3RvcihyZXN1bHRfYXNfcmhfdWZ0X0RFTCRjbHVzdGVyKQpjYXRkZXMocmVzdWx0X2FzX3JoX3VmdF9ERUwsIDE2KQpgYGAKCgojIFdpdGhvdXQgYXN0aG1hIGFuZCBSaGluaXRpcyBEYXRhIGNsdXN0ZXJzIHdpdGggREVMIChEZWVwIEVtYmVkZGluZyBDbHVzdGVyaW5nIGxheWVyKQoKYGBge3J9CnJlc3VsdF9ub19hc19yaF91ZnRfREVMIDwtIHJlYWQuY3N2KCcvVXNlcnMveGJhc3JhL0RvY3VtZW50cy9EYXRhL0NsdXN0ZXJpbmdfRm9vZF9BbGVyZ2llcy9JbnRlcm1lZGlhdGUvQ3N2RGF0YV9PdXRwdXQvcmVzdWx0X25vX2FzX3JoX3VmdF9ERUwuY3N2JykKcmVzdWx0X25vX2FzX3JoX3VmdF9ERUwkZmFybWxpdmVbcmVzdWx0X25vX2FzX3JoX3VmdF9ERUwkZmFybWxpdmUgPT0gIiJdIDwtIE5BCnJlc3VsdF9ub19hc19yaF91ZnRfREVMIDwtICByZXN1bHRfbm9fYXNfcmhfdWZ0X0RFTCAlPiUgcmVwbGFjZV9uYSAobGlzdChmYXJtbGl2ZSA9ICdubycpKQp0YWJsZV9ub19hc19yaF91ZnRfREVMIDwtIHRhYmxlYnkoY2x1c3RlciB+IC4sIGRhdGEgPSBhcy5saXN0KHJlc3VsdF9ub19hc19yaF91ZnRfREVMKSkKc3VtbWFyeSh0YWJsZV9ub19hc19yaF91ZnRfREVMLCB0aXRsZSA9ICJDaGFyYWNodGFyaXN0Y3Mgb2YgQ2x1c3RlcnMiKQojIGFkZGluZyB0aGUgaWQgdmFyaWFibGUgCiNyZXN1bHRfZm9vZF91ZnRfREVMX2skSUQgPC0gZm9vZF9kYXRhX2lkJElEIAojd3JpdGUuY3N2KHJlc3VsdF9mb29kX3VmdF9ERUxfaywgIi9Vc2Vycy94YmFzcmEvRG9jdW1lbnRzL0RhdGEvQ2x1c3RlcmluZ19Gb29kX0FsZXJnaWVzL0NzdkRhdGEvcmVzdWx0X2Zvb2RfdWZ0X0RFTF9rLmNzdiIpCmBgYAoKIyMgQ2hhcmFjaHRpcmlzdGljIEFuYWx5c2lzCmBgYHtyLCB3YXJuaW5nPUZBTFNFfQpyZXN1bHRfbm9fYXNfcmhfdWZ0X0RFTCRjbHVzdGVyIDwtIGFzLmZhY3RvcihyZXN1bHRfbm9fYXNfcmhfdWZ0X0RFTCRjbHVzdGVyKQpjYXRkZXMocmVzdWx0X25vX2FzX3JoX3VmdF9ERUwsIDE2KQpgYGAKCgoKCiMgYWRkaW5nIHRoZSBpZCB2YXJhaWJsZQpgYGB7cn0KI3Jlc3VsdGZ0X0RFTF9hbGwkSUQgPC0gZm9vZF9kYXRhX2lkJElECnJlc3VsdGZ0X0RFTF9hbGxfNSRJRCA8LSBmb29kX2RhdGFfaWQkSUQKcmVzdWx0X3JhbmRfdWZ0X0RFTF9rJElEIDwtIHJhbmRfZm9vZF9kYXRhX2lkJElECnJlc3VsdF9hc19yaF91ZnRfREVMJElEIDwtIGFzX3JpX2Zvb2RfaWQkSUQKcmVzdWx0X25vX2FzX3JoX3VmdF9ERUwkSUQgPC0gbm9fYXNfcmlfZm9vZF9pZCRJRAp3cml0ZS5jc3YocmVzdWx0ZnRfREVMX2FsbF81LCcvVXNlcnMveGJhc3JhL0RvY3VtZW50cy9EYXRhL0NsdXN0ZXJpbmdfRm9vZF9BbGVyZ2llcy9SZXN1bHRzL0NTVkRhdGEvcmVzdWx0ZnRfREVMX2FsbF9pZF81LmNzdicpCndyaXRlLmNzdihyZXN1bHRfcmFuZF91ZnRfREVMX2ssJy9Vc2Vycy94YmFzcmEvRG9jdW1lbnRzL0RhdGEvQ2x1c3RlcmluZ19Gb29kX0FsZXJnaWVzL1Jlc3VsdHMvQ1NWRGF0YS9yZXN1bHRfcmFuZF91ZnRfREVMX2tfaWQuY3N2JykKd3JpdGUuY3N2KHJlc3VsdF9hc19yaF91ZnRfREVMLCcvVXNlcnMveGJhc3JhL0RvY3VtZW50cy9EYXRhL0NsdXN0ZXJpbmdfRm9vZF9BbGVyZ2llcy9SZXN1bHRzL0NTVkRhdGEvcmVzdWx0X2FzX3JoX3VmdF9ERUxfaWQuY3N2JykKd3JpdGUuY3N2KHJlc3VsdF9ub19hc19yaF91ZnRfREVMLCcvVXNlcnMveGJhc3JhL0RvY3VtZW50cy9EYXRhL0NsdXN0ZXJpbmdfRm9vZF9BbGVyZ2llcy9SZXN1bHRzL0NTVkRhdGEvcmVzdWx0X25vX2FzX3JoX3VmdF9ERUxfaWQuY3N2JykKYGBgCgoKCgoKCgoKCgoKCgoKCgoKCgo=